// @flow

// 指定对应 key 的类型
const obj1: {foo: string, bar: number } = { foo: 'str', bar: 1};

// 指定对应 key 类型 但 key 不一定不存在
const obj2: {foo: string, bar?: number } = { foo: 'str'};

// 不指定类型来灵活添加属性
const obj3 = {};
obj3.a = 'a';
obj3.b = 'c';

// 指定 key 的类型和 value 的类型
const obj4: {[string]: number} = { 'asd': 1 };